{
https://github.com/kpfleming/jenkins-core/tree/reconfigurables}
After taking suggestions from Jesse and Stephen, I've put together a small patch that allows DescribableList to properly reconfigure instances of ReconfigurableDescribable, even if the hetero-list contains multiple instances from the same Descriptor, or if the user has changed their order (or both, of course). I've tested this with a locally patched version of the EC2 plugin and it appears to work as intended.
Because this changes some interfaces, I'd requesting a pre-review here before sending a pull request, as discussion about the changes is easier on the mailing list (and more widely seen) than discussion on a pull request. Specifically:
* I've added a getReconfigurable() method to Descriptor, with a base implementation that returns false. This should be backwards compatible.
* I've added a getDescribableId() method to ReconfigurableDescribable; since it is an interface, no base implementation can be provided. All implementers of this interface in the tree have been updated. This change is *not* backwards compatible.
* I've modified Cloud to implement ReconfigurableDescribable instead of Describable, and provided base implementations of the methods required. Since Describable is the parent of ReconfigurableDescribable, this should be backwards compatible.